/* Bairro.java
*  Criado em 01/12/2005
*
*/
package br.com.werp.regras.endereco.visao.decorador;

import br.com.werp.regras.geral.FabricaSubSistema;
import br.com.werp.regras.geral.GerenciamentoEndereco;
import br.com.werp.regras.geral.helpers.CepHelper;
import br.com.werp.regras.geral.helpers.CidadeHelper;
import br.com.werp.regras.geral.helpers.LogradouroHelper;
import br.com.werp.regras.geral.util.Html;
import br.com.werp.regras.geral.util.Util;
import br.com.werp.regras.geral.vos.tabelas.Bairro;
import br.com.werp.regras.geral.vos.tabelas.Cep;
import br.com.werp.regras.geral.vos.tabelas.Cidade;
import br.com.werp.regras.geral.vos.tabelas.Logradouro;
import br.com.werp.regras.geral.vos.tabelas.Uf;

import org.displaytag.decorator.TableDecorator;

import java.util.HashMap;
import java.util.Map;


/**
 * @author Rafael Carneiro - <a href = "mailto:rafael@portaljava.com">
 * rafael@portaljava.com</a>
 */
public class BairroDecorator extends TableDecorator {
    public String getBair_descricao() {
        Bairro bairro = (Bairro) getCurrentRowObject();

        Map map = new HashMap();

        map.put("carregar_action", "");
        map.put("bair_id", new Integer(bairro.getBair_id()));
        map.put("bair_descricao", bairro.getBair_descricao());

        return Html.href("../Enderecos/BairroForm.do", map) +
        bairro.getBair_descricao() + "</a>";
    }

    public String getUf_descricao() throws Exception {
        Bairro bairro = (Bairro) getCurrentRowObject();

        Cep cep = new Cep();
        cep.setCeps_bairro((bairro.getBair_id()));	
        cep = CepHelper.obterCepVOTabela(cep);

        if (cep != null) {
            Cidade cidade = CidadeHelper.obterCidade(String.valueOf(
                        cep.getCeps_cidade()));

            GerenciamentoEndereco gerenciamentoEndereco = FabricaSubSistema.getGerenciamentoEndereco();

            Uf uf = new Uf();
            uf.setUnfd_id(cidade.getCida_uf());
            uf = (Uf) Util.get0(gerenciamentoEndereco.pesquisarUFVOTabela(uf));

            return uf.getUnfd_descricao();
        } else {
            return "";
        }
    }

    public String getCida_descricao() throws Exception {
        Bairro bairro = (Bairro) getCurrentRowObject();

        Cep cep = new Cep();
        cep.setCeps_bairro((bairro.getBair_id()));	
        cep = CepHelper.obterCepVOTabela(cep);


        if (cep != null) {
            Cidade cidade = CidadeHelper.obterCidade(String.valueOf(
                        cep.getCeps_cidade()));

            return cidade.getCida_descricao();
        } else {
            return "";
        }
    }

    public String getLogr_descricao() throws Exception {
        Bairro bairro = (Bairro) getCurrentRowObject();

        Cep cep = new Cep();
        cep.setCeps_bairro((bairro.getBair_id()));	
        cep = CepHelper.obterCepVOTabela(cep);


        if (cep != null) {
            Logradouro logradouro = LogradouroHelper.obterLogradouro(String.valueOf(
                        cep.getCeps_logradouro()));

            return logradouro.getLogr_descricao();
        } else {
            return "";
        }
    }
}
